/**
 * Demo4422 - 一个简单的演示npm包
 */

class Demo4422 {
  constructor() {
    this.name = 'Demo4422';
    this.version = '1.0.0';
  }

  /**
   * 获取包信息
   * @returns {Object} 包的基本信息
   */
  getInfo() {
    return {
      name: this.name,
      version: this.version,
      description: '一个简单的演示npm包',
      author: 'Qiang'
    };
  }

  /**
   * 简单的问候函数
   * @param {string} name - 要问候的名字
   * @returns {string} 问候语
   */
  greet(name = 'World') {
    return `Hello, ${name}! Welcome to ${this.name} v${this.version}`;
  }

  /**
   * 简单的计算器功能
   * @param {number} a - 第一个数字
   * @param {number} b - 第二个数字
   * @param {string} operation - 操作类型 ('add', 'subtract', 'multiply', 'divide')
   * @returns {number} 计算结果
   */
  calculate(a, b, operation = 'add') {
    switch (operation) {
      case 'add': return a + b;
      case 'subtract': return a - b;
      case 'multiply': return a * b;
      case 'divide': 
        if (b === 0) throw new Error('除数不能为零');
        return a / b;
      default: throw new Error('不支持的操作类型');
    }
  }

  /**
   * 生成随机字符串
   * @param {number} length - 字符串长度
   * @returns {string} 随机字符串
   */
  generateRandomString(length = 8) {
    const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    let result = '';
    for (let i = 0; i < length; i++) {
      result += chars.charAt(Math.floor(Math.random() * chars.length));
    }
    return result;
  }
}

// 如果直接运行此文件，显示示例
if (import.meta.url === `file://${process.argv[1]}`) {
  const demo = new Demo4422();
  console.log('=== Demo4422 演示 ===');
  console.log(demo.getInfo());
  console.log(demo.greet('开发者'));
  console.log('10 + 5 =', demo.calculate(10, 5, 'add'));
  console.log('随机字符串:', demo.generateRandomString());
  console.log('==================');
}

export default Demo4422;
export { Demo4422 }; 